1. Field of the Invention
This invention generally relates to network-attached storage (NAS) and, more particularly, to a system and method for stacking storage drives in a NAS.
2. Description of the Related Art
FIG. 1 is a schematic block diagram of a direct-attached storage (DAS) system (prior art). A DAS is a digital storage system directly attached to a server or workstation, without a storage network in between. A DAS can be differentiated from a system area network (SAN) or network-attached storage (NAS). A typical DAS system is made of a data storage device 100 (for example, an enclosure holding a number of hard disk drives) connected directly to a computer 102 through a host bus adapter (HBA) and universal serial bus (USB) interface. Between those two points there is no network device, such as a hub, switch, or router. The main protocols used for DAS connections are ATA, SATA, eSATA, SCSI, SAS, and Fibre Channel.
A DAS device can be shared between multiple computers, as long as it provides multiple interfaces (ports) that allow concurrent and direct access. In fact, most SAN-attachable storage devices or NAS devices can be easily used as DAS devices—all that is needed is to disconnect their ports from the data network and connect one or more ports directly to a computer with a cable. The disadvantages of DAS include an inability to share data or unused resources with other servers. Both NAS and SAN architectures attempt to address this, but introduce some new issues as well.
FIG. 2 is a schematic block diagram of a NAS system (prior art). A NAS 200 is file-level computer data storage connected to a computer network, via a network switch 202, providing data access to heterogeneous network clients (e.g., client 204). A NAS unit is a computer connected to a network that only provides file-based data storage services to other devices on the network. Although it may technically be possible to run other software on a NAS unit, it is not designed to be a general purpose server. For example, NAS units usually do not have a keyboard or display, and are controlled and configured over the network, often using a browser. A fully-featured operating system is not needed on a NAS device, so often a stripped-down operating system is used. For example, FreeNAS, an open source NAS solution designed for commodity PC hardware, is implemented as a stripped-down version of FreeBSD.
FIG. 3 is a schematic block diagram of a NAS system with multiple disk drives (prior art). NAS systems typically include one or more hard disks 206, often arranged into logical, redundant storage containers or RAID arrays (redundant arrays of inexpensive/independent disks). From the point of view of keeping technology purchasing simple, it is preferred to not expose customers to the notion of disk-drives. Instead, the disk drives are presented as a network based storage, e.g., NAS, or storage based upon a peripheral interconnect, e.g., a USB based DAS. At disk drive level, there are many manufacturers, and hence the issue of having to specify which drives are supported.
NAS removes the responsibility of file serving from other servers on the network. NAS uses file-based protocols such as NFS (popular on UNIX systems), SMB/CIFS (Server Message Block/Common Internet File System) (used with MS Windows systems), or AFP (used with Apple Macintosh computers). NAS units rarely limit clients to a single protocol.
NAS provides both storage and a file system. A file system is a method of storing and organizing computer files and their data. Essentially, it organizes these files into a database for the storage, organization, manipulation, and retrieval by the computer's operating system. File systems are used on data storage devices such as a hard disks or CD-ROMs to maintain the physical location of the files. Beyond this, they might provide access to data on a file server by acting as clients for a network protocol. It is distinguished from a directory service and registry.
Most file systems make use of an underlying data storage device that offers access to an array of fixed-size physical sectors, generally a power of 2 in size (512 bytes or 1, 2, or 4 kB are most common). The file system is responsible for organizing these sectors into files and directories, and keeping track of which sectors belong to which file and which are not being used. Most file systems address data in fixed-sized units called “clusters” or “blocks” which contain a certain number of disk sectors (usually 1-64). This is the smallest amount of disk space that can be allocated to hold a file.
A file name is a name assigned to a file in order to secure storage location in the computer memory. By this file name a file can be further accessed. Whether the file system has an underlying storage device or not, file systems typically have directories which associate file names with files, usually by connecting the file name to an index in a file allocation table of some sort, such as the FAT in a DOS file system, or an inode in a Unix-like file system. Directory structures may be flat, or allow hierarchies where directories may contain subdirectories. In some file systems, file names are structured, with special syntax for filename extensions and version numbers. In others, file names are simple strings, and per-file metadata is stored elsewhere.
Metadata is bookkeeping information typically associated with each file within a file system. The length of the data contained in a file may be stored as the number of blocks allocated for the file or as an exact byte count. The time that the file was last modified may be stored as the file's timestamp. Some file systems also store the file creation time, the time it was last accessed, and the time that the file's meta-data was changed. Other information can include the file's device type (e.g., block, character, socket, subdirectory, etc.), its owner user-ID and group-ID, and its access permission settings (e.g., whether the file is read-only or executable).
NAS is useful for more than just general centralized storage provided to client computers in environments with large amounts of data. NAS can enable simpler and lower cost systems such as load-balancing and fault-tolerant email and web server systems by providing storage services. The potential emerging market for NAS is the consumer market where there is a large amount of multi-media data. Such consumer market appliances are now commonly available. Unlike their rack-mounted counterparts, they are generally packaged in smaller form factors. The price of NAS appliances has plummeted in recent years, offering flexible network-based storage to the home consumer market for little more than the cost of a regular USB or FireWire external hard disk. Many of these home consumer devices are built around ARM, PowerPC, or MIPS processors running an embedded Linux operating system.
It would be advantageous if disk drives in a NAS system could be added, removed, and replaced without the requirement of rebuilding the file directory.